package pt.c01interfaces.s01chaveid.debolacha;

import pt.c01interfaces.s01chaveid.s01base.inter.*;

public class Pergunta {
	private String pergunta;
	private Lista sim, nao, nao_sei;

	/*Adiciona uma pergunta e um animal ao ArrayList correspondente ao valor em questao*/
	 /* como fazer o nao_sei? ---- no Enquirer, conferir os bixos sem apontador depois depois*/
	public Pergunta(IDeclaracao decl, String animal){
		/*Instancia os atributos*/
		this.pergunta = decl.getPropriedade();
		sim = new Lista();
		nao = new Lista();
		
		/*Adiciona o animal a lista apropriada*/
		this.adiciona_animal(decl.getPropriedade(), animal);
	}
	
	/*Cria um objeto generico para comparacao e insercao em um hashtable*/
	public Pergunta(String pergunta){
		this.pergunta = pergunta;
	}
	
	/*Adiciona um animal na lista apropriada*/
	public void adiciona_animal(String valor, String animal){
		if(valor.equalsIgnoreCase("sim"))
			sim.add(animal);
		else if(valor.equalsIgnoreCase("nao"))
			nao.add(animal);
	}

	/*Add nao_sei()
	 * public void
	 */
	
	/*Se dois objetos Pergunta tiverem o mesmo atributo 'pergunta', eles sao iguais,
	 *independente das listas que tambem fazem parte do mesmo*/
	public boolean equals(Pergunta outro){
		return this.getPergunta().equalsIgnoreCase(outro.getPergunta());
	}
	
	/*Retorna a soma dos codigos dos caracteres na tabela ASCII do atributo pergunta*/
	public int hashCode(){
		int i,
			soma = 0;
		for(i=0; i< pergunta.length(); i++)
				soma += pergunta.charAt(i);
	
		return soma;
	}
	
	/*Retorna a pergunta do noh*/
	public String getPergunta(){
		return pergunta;
	}
	
	/*Retorna a lista correspondente a um valor*/
	public Lista getLista(String valor){
		Lista x;
		
		if(valor.equalsIgnoreCase("sim"))
			x = this.sim;
		else if(valor.equalsIgnoreCase("nao"))
			x = this.nao;
		else if(valor.equalsIgnoreCase("nao sei"));
			x = this.nao_sei;
			
		return x;
	}
}
